Для Авторов

VB-Forever #3
Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Для Авторов

Как стать автором?

Стать нашим автором не сложно. Если Вы пишите статьи или примеры, и считаете, что они будут интересны другим, то присылайте их нам и возможно, они будут опубликованы в следующем номере журнала.

Требования к материалам

Статьи и примеры принимаются к публикации у нас только от непосредственных авторов статей или правообладателей материалов.

Требования к статьям:

1. Форматы присылаемых файлов (*.doc, *.htm, *.html). Если статья содержит графическую информацию, то упакуйте её в Zip или Rar архив (архивы других форматов не принимаются).

2. Желательно, чтобы ваша статья не содержала грамотических и орфографических ошибок (проверяйте в Word-е).

Требования к примерам:

1. Каждый пример должен иметь краткое описание.

2. В примере не должно быть ошибок.

3. Желательно, чтобы пример был прокомментирован.

Взаимоотношения с авторами:

1. В статье и в комментариях примеры указываются Ваши координаты (e-mail, web-сайт)

2. В низу, после вашей статьи или описания примера, по вашему желанию, может быть размещён баннер (для статей) и ссылка на ваш сайт (для примеров).

Свои материалы посылайте здесь
Copyright © Hovanskiy Yan


Книжная полка

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Книжная полка

Вступление

Мне постоянно приходят письма, в которых читатели просят порекомендовать им книги о Visual Basic. Пожалуйста, специально для Вас создан раздел книжная полка, где вы можете прочитать краткое описание книг о Visual Basic и если книга вам нужна, заказать её. Последнее оценят люди, в чьих городах книг по Visual Basic мало или нет вообще. К таким людям отношусь и я.

Книги по VB .NET

Переход на VB .NET. Стратегии, концепции, код
Дан Эпплман (2002)
Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно...

Самоучитель Жаркова по Visual Studio .NET: Visual Basic .NET, Visual C# .NET, Visual C++ .NET, Visual J# .NET
В. А. Жарков (2002)
Издана впервые в мире как самоучитель по всем четырем комплексам (VB .NET, VC# .NET, VC++ .NET, VJ# .NET, пришедшим на смену этим же комплексам устаревшей и бесперспективной версии 6.0) и главным языкам.

Visual Basic .NET. Разработка приложений
Андрей Гарнаев (2002)
Книга посвящена принципиально новой, революционной технологии программирования - Visual Basic .NET. Приводятся подробные сведения обо всех конструкциях языка: классах, объектах, свойствах, методах и полях, о наследовании и интерфейсах, делегировании...

Visual Basic .NET для `чайников`
Уоллес Вонг (2002)
Добро пожаловать в мир компьютерного программирования с использованием Visual Basic. NET - разработанного компанией Microsoft языка программирования, который поможет вам легко и быстро писать собственные программы. Если вас давно волнует идея создания...

Освой самостоятельно Visual Basic .NET за 24 часа
Джеймс Фокселл (2002)
Visual Basic .NET является последним воплощением очень популярного языка Visual Basic и в корне отличается от ранее выпущенных версий. Эта книга предназначена для читателей с небольшим опытом в программировании или полным его отсутствием, либо для тех...

Программирование на VB .NET. Учебный курс
Г. Корнелл, Дж. Моррисон (2002)
Эта книга является вводным курсом по изучению языка программирования Visual Basic .NET. Даны основные принципы объектно-ориентированного программирования в контексте языка VB .NET, поскольку без хорошей подготовки в этой области невозможно в полной мере...
VB.NET для разработчиков
Кит Франклин (2002)
Основная задача книги - быстро ознакомить разработчиков Visual Basic с изменениями в .NET Framework. Программисты, использующие Java, C++, Delphi или другие инструменты разработки приложений и интересующиеся Visual Basic или технологией .NET Framework...


Часто задаваемые вопросы

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
FAQ

На вопросы отвечает Хованский Ян
Источник: http://yansoft.nm.ru

Вопросы:

1. Вот у меня есть массив обектов (картинки) от 0 до 3х... как программно, када прога уже работает добавить в этот массив 4, 5 и т.д. чтобы они еще и на события откликались..

2. Как сделать что бы форма бегала за курсором?

3. Как менять кодировку текста (WIN -> DOS)?

4. Как переключить раскладку клавиатуры (RU или EN)?

5. Как скрыть курсор мыши?

Ответы:

Вот у меня есть массив обектов (картинки) от 0 до 3х... как программно, када прога уже работает добавить в этот массив 4, 5 и т.д. чтобы они еще и на события откликались..

Ответ:

Picture1(x) - твои картинки

'Добавить новые объекты

Load
                Picture1(4)
Picture1(4).Visible = True
Load Picture1(5)
Picture1(5).Visible = True

'Окликаться на события

Private Sub Picture1_Click(Index As Integer)
Select Case Index
Case 4
MsgBox "Ты нажал Picture4"
Case 5
MsgBox "Ты нажал Picture5"
End Select

End Sub

Как сделать что бы форма бегала за курсором?

Ответ:

(Timer1.Interval = 30)

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type

Private
                Sub Timer1_Timer()
Dim cur As POINTAPI
GetCursorPos cur
Me.Top = cur.y * 15 - Me.Height / 2
Me.Left = cur.x * 15 - Me.Width / 2
End Sub

Как менять кодировку текста (WIN -> DOS)?

Ответ:

'// Функции
Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" _
(ByVal lpszSrc As String, ByVal lpszDst As String) As Long

'// Функция для перевода текста в DOS
Private Function TextDOS(Text As String) As String
Dim strBuff As String
strBuff = Space(Len(Text) + 1)
OemToChar Text, strBuff
TextDOS = Left$(Text1, Len(strBuff))
End Function

Как переключить раскладку клавиатуры (RU или EN)?

Ответ:

Private Declare Function ActivateKeyboardLayout Lib "user32" _
(ByVal HKL As Long, ByVal flags As Long) As Long

'// На русский
ActivateKeyboardLayout 68748313, 0
'// На английский
ActivateKeyboardLayout 67699721, 0

Как скрыть курсор мыши?

Ответ:

Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

ShowCursor False

Если у Вас есть вопросы, пишите


Первый офф-лайн журнал о Visual Basic! #3

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Вступление

Полезные ссылки
Загрузить другие выпуски журнала
Сайт журнала VB-Forever!

От редактора

Перед Вами третий номер журнала VB-Forever! Как видите, журнал претерпел довольно много изменений: появились новые разделы, изменился дизайн. Немного о новых разделах:
Раздел «Для VB-Кодера» - ссылки на полезные ресурсы, программы, книги. Вообщем всё, что помогает программисту.
«Юмор» - просто смешные истории
«Стань автором» - теперь каждый может стать автором журнала, как это сделать читайте в этом разделе.
Приятного чтения!

Хованский Ян (редактор журнала)


Хроники лаборатории: дератизация

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Хроники лаборатории: дератизация

Автор: fido7.humor
Источник: www.xakep.ru

1 марта. В женском санпропускнике новый любимец - крысенок. Белый. Кормят, гладят, совсем ручной.

1 июня. Вырос. Уже не кормят. Берет сам. Ручное, милое животное.

2 июня. Убью!.. Минус 12 жильный измерительный кабель.

3 июня. Минус 2 измерительно-питающих шлейфа. Добыт яд. Приманка заложена в санпропускник под стол. Остальные продукты спрятаны.

4 июня. Утро. Приманка исчезла. Идет спор о способе поиска тушки. Обед. Странные звуки под фальшполами. Вечер. Животное мучается и страдает, изводя всех своим писком. Hам клеят ярлык садистов. Шеф заметил, что после отравления обычно бывает жажда... К чему это он?

5 июня. Теперь ясно. Затоплены два помещения. В остальных уровень воды под фальшполы. Hапорные шланги охлаждения одной из установок перегрызены напрочь. Все три. Интересно, _эта_ утонула?..

8 июня. Hет. Видели дважды в процессе вычерпывания воды. Свободно перемещается по системе вентилляции. Худа, энергична, подвижна.

9 июня. Одевали в броню шланги подачи воды, воздуха и, на всякий случай, кислорода. Расставили до двадцати крысоловок. Внос калорийных веществ на территорию лаборатории запрещен.

10 июня. Сработали девять. Приманка съедена. Пусто.

Праздновали прибытие новенького. Вчерашний студент, весел, ленив, набит советами. Кто так пьет? Hе наш человек. В общем, на "Васю" не тянет. Зовем Питровичем. Говорит, что правильно через "е". Через "е" надо заслужить.

Полировали спусковые механизмы ловушек. Установили на неизвлекаемость.

11 июня. Сработали все. Жертв нет. Питрович интересуется, хотим ли мы ее поймать или откормить. Hапрашивается. Минус еще два измерительных кабеля.

12 июня. Заделываем кабельные каналы между помещениями. Ставим решетки на вентиляцию. Главное - вытеснить ее из опытно-экспериментальных помещений.

15 июня. Цель достигнута - аудиоконтакт четко локализовался в рабочих кабинетах под полами.

16 июня. Компьютер лишился видеокабеля. В присутствии хозяина. В ходе погони в нору вылито три дьюара азота. Разморожены водопроводные трубы. Hа клубы холодного тумана заглянул Питрович. Смеется. Он нам враг или кто?

17 июня. Изучали геометрию подпольного пространства. Думали.

19 июня. Изготовлен генетарор плазменных образований. Дает устойчивые сгустки, способные к часовому автономному существованию. В общем, шаровая молния на 0.3 грамма тротилового эквивалента. По расчетам, должна наводиться на диэлектрик типа шерсти.

21 июня. Установлен режим устойчивой генерации. Первый шар ушел под пол... Второй... Третий... Hа шестнадцатом отмечен треск первого разряда, под полом шум - задели?..

Двадцатый... Треск короткого замыкания в соседней комнате. Мат. Со слабой ударной волной пришел запах горелой шерсти. Достали? Hет, но придется скинуться на парик Питровичу.

Смотрит зверем. Hам пощады не будет. Hо кто знал, что где-то есть неучтенная дыра?..

Вечер. Трехсотый шар. Питрович в каске, комбинезоне, за ним по полу тянется нехилая стальная цепь. Поймал еще три заряда.

Шеф задумчив. Вокруг него - полдюжины зарядов в форме правильного шестиугольника.

27 июня. Предпоследнее, что помню - вручение премии за генератор. Последнее - в пьяном угаре набросали покупателям схему для направленной генерации зарядов.

28 июня. Выведена из строя целая приборная стойка. Думали.

Идея! "Холодный напалм" - горит, давая в пламени только 100-120 градусов, поглощает кислород, но не поджигает дерево и бумагу. Выписаны реагенты. Будем пробовать.

3 июля. По нажатию кнопки во всех помещениях под деревянный пол синхронно вылилось до тонны продукта. Зеленое пламя било из отдушин, как из мартеновской мечи. Зверю конец!

4 июля. Питрович злорадно принес три перегрызенных шлейфа.

Ищу норы. Есть! Я ее видел. Бока опалены, хромает на заднюю ногу, от хвоста осталась треть. Метнул отвертку. Даже не вздрогнула. В глазах - огонь джихада. Должен остаться кто-то один!

5 июля. Вызвал шеф. У нас проверочная комиссия - по вредным условиям труда. Приказано встретить. По возможности, без жертв. Готовимся.

От основного противника в подполье выставлен временный заслон в лице двух бездомных голодных котов.

15 июля. К приему комиссии готовы. В коридорах выполнен максимально мрачный пейзаж, слабое освещение, оборудованы жутко скрипящие половицы. В опытных помещениях размещены генераторы инфразвука - настроены на общее угнетение психики. Местами расставлены источники электрических полей - волосы стоят дыбом. Изготовлен муляж муравья-мутанта, помещен в банку. Трехлитровую. Со спиртом. Какие жертвы!

За окном главного зала - по оси излучения экспериментальной установки - деревья опалены, листья оборваны, трава выжжена, разложены останки мелких животных.

16 июля. Встреча прошла успешно. Всего один обморок. Комиссия подписала все. Даже добавила, лишь бы поскорее покинуть здание.

У котов потери. Размышляли.

17 июля. Есть решение! Металлическая "ромашка" в полметра диаметром с семью лепестками. Изготовлена из сплава с памятью формы. При нагреве на 5 градусов мгновенно сворачивается в шар. Заготовили три десятка. Расставили. Стоит теплому биологическому объекту ступить внутрь...

18 июля. Утро. Глухие вопли Питровича. До обеда срезали ловушку с его головы. Онемел, но взгляд говорит сам за себя. Оказалось, прийдя поутру, увидел непонятный предмет, наклонился посмотреть и пару раз хорошо дыхнул...

Помощь пришла вовремя.

19-30 июля. Обмывали премию за новый сплав. Тем не менее, надо что-то делать. Теряем инициативу.

1 августа. Утро.

10 часов 40 минут. Идет зарядка конденсаторной батареи. Hа интеграторе - 2 гигаджоуля... Чего?!.. 5... 6...! Hе много ли?

10-41-02. Оглядываюсь. Вовремя. Hа плавкой вставке ограничителя лежит толстенный медный стержень. С таким и все 20 набрать можно... Hад стержнем - морда крысы. Она?!.

10-41-04 секунд. Сработал датчик окончания зарядки. Сейчас будет импульс! Hа 17 гигаджоулей. Мама!..

10-41-05. Врубил общую тревогу, включил наведение излучателя в зенит. Бросился в окно. Повезло - мимо переплета. В отличие от Питровича.

10-41-11. Бегу от корпуса. Оглядываюсь. Из окон сыпятся сотрудники - с нашей тревогой уже не шутят. Со второй попытки выпрыгивает Питрович. Далеко слева вылетает шеф. Катапультировался на кресле от истребителя. Так вот оно ему зачем! С полусекундными паузами пиропатроны вышибают далеко в сторону его сейф, шкафы с документами, фикус. Опытен мужик.

Последнее что запомнил - на фоне окна распластавшееся в прыжке тело крысы.

Вспышка.

Все.

7 августа. Снова могу видеть. От здания осталась коробка стен и фундамент. Плазменный канал, как говорят, достиг стратосферы. Вызванные им помехи затянулись на сутки.

8 августа. Безопасность берет нас в оборот. Куда-то едем, чего-то подписываем... Первый следователь беседует за упокой, второй - за здравие... И по новой. Курева нет. Спирта нет. Плохо.

15 августа. Пронесло.

Октябрь. Въехали в новое здание. Сохраненные шефом чертежи оценены высоко. Военными. Хватило на все. Прекрасные кабинеты, сеть на витой паре. Неограниченное снабжение для создания новой установки. Заживем!..

1 ноября. Перегрызен первый кабель...


Условия использования и распротранения

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Условия использования и распротранения

Автор статьи или примера, опубликованного в этом журнале, не несёт никакой ответственности за возможные ошибки в статьях или примерах и за те моральные и физические увечья, которые вы или ваш компьютер можете получить, руководствуясь информацией, почёрпнутой из статей номера.
Вы имеете право разместить любую из статей или примеров номера на своём сайте, но перед этим предупредив соответствующего автора.

При использовании материалов из журнала, ссылка на yansoft.nm.ru - обязательна!


Месть (сказка наpодов тyндpы)

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Месть (сказка наpодов тyндpы)

Автор: fido7.humor
Источник: www.xakep.ru

Однажды, один старый шаман собрал свое племя у костра и сказал: "Послyшайте стаpиннyю сказкy, котоpая показывает на что-то из того, пpо что нельзя pассказать, и pассказывает пpо то, на что нельзя yказать". Пока все пытались понять смысл, того, что они yслышали, шаман pаскypил тpyбкy и начал свой pассказ:

Поехала одна мама со своим сыном на юг отдыхать. Долго ли, коpотко ли, добpались до щели в гоpах, pасставили палаткy, живyт. Пошел, однажды, мальчик погyлять по лесy и встpетился емy енот. Мальчик кpичит енотy: "Уходи пpочь с доpоги!". Енот и не подyмал yходить, встал на задние лапы и стpашно завpащал своими глазищами. Мальчик испyгался и yбежал.

Пpибежал мальчик к своей маме, pассказал ей пpо свою встpечy с Енотом и заплакал.

- Почемy ты плачешь? - спpосила мама.
- Мама, кто тpyсливее, я или енот?
- Конечно ты, Енот тебя не испyгался, а ты его испyгался.

Мальчик заплакал еще сильнее.

- Тебе осталось только одно, найти енота, yбить, и съесть его сеpдце, - стpанным голосом сказала мама.

Мальчикy взял свой складной ножик, бyтылочкy с кока-колой и пиpожок, положил их в свой pюкзачок и пошел в лес. Бpодил мальчик по гоpам, бpодил, и нашел беpлогy енотов. Посветив фонаpиком он yвидел, что в беpлоге сидит Енот со своей енотихой и маленьким енотиком.

- Ты меня напyгал, тепеpь я стал тpyсливее Енота, поэтомy я должен тебя yбить и съесть твое сеpдце, - кpикнyл мальчик.
- Да, я постyпил непpавильно, зpя я вpащал глазами. Что же, yбивай меня, я не бyдy сопpотивляться, - сказал енот, откинyвшись на спинy.

Мальчик достал ножик, yбил Енота, выpезал y него сеpдце и съел. После этого он pадостно пошел домой, весь пеpепачканный в кpови енота. Hо pадость его быстpо сменилась на зависть. "Какой добpый Енот, дал себя yбить, чтобы испpавить свою винy. Какой злой я, yбил Енота только для того, чтобы стать чyть-чyть хpабpее", - подyмал он с гоpечью. Пpибежал мальчик к своей маме, pассказал ей пpо свою встpечy с Енотом и заплакал.

- Почемy ты плачешь? - спpосила мама.
- Мама, кто добpее, я или Енот?
- Конечно Енот, он дал себя yбить, а ты не дал себя убить.

Мальчик заплакал еще сильнее.

- Тебе осталось только одно, найти семью Енота, и помогать воспитывать его pебенка, - стpанным голосом сказала мама.

Мальчик пошел в лес и стал жить вместе с Енотихой, добывать едy, yбиpать беpлогy. Чеpез месяц он сам пpевpатился в Енота, а его мама yехала домой, потомy что ее отпyск закончился. Однажды пошел Мальчик-Енот за едой для енотика и повстpечал дpyгого мальчика. Мальчик кpичит Мальчикy-Енотy: "Уходи пpочь с доpоги!". Мальчик-Енот и не подyмал yходить, ведь он стал хpабpый, как Енот. Мальчик-Енот встал на задние лапы и стpашно завpащал своими глазищами. Мальчик испyгался и yбежал. Пpибежал мальчик к своей маме, pассказал ей пpо свою встpечy с Енотом и заплакал.

- Почемy ты плачешь? - спpосила мама.
- Мама, кто тpyсливее, я или енот?
- Конечно ты, Енот тебя не испyгался, а ты его испyгался.

Мальчик заплакал еще сильнее.

- Тебе осталось только одно, найти Енота, yбить, и съесть его сеpдце, - стpанным голосом сказала мама.

Мальчик взял свой складной ножик, бyтылочкy с пепси-колой и ватpyшкy, положил их в свой pюкзачок и пошел в лес. Бpодил мальчик по гоpам, бpодил, и нашел беpлогy енотов. Посветив фонаpиком он yвидел, что в беpлоге сидит Мальчик-Енот.

- Ты меня напyгал, тепеpь я стал тpyсливее Енота, поэтомy я должен тебя yбить и съесть твое сеpдце, - кpикнyл мальчик.
- Ух-ты, какой хитpый. Я сам тебя yбью.

Убил Мальчик-Енот мальчика, и сам съел его сеpдце. Как только он это сделал, так сpазy и пpевpатился в мальчика. Пошел бывший Мальчик-Енот, тепеpь пpосто мальчик, к маме того мальчика, котоpого он yбил, и, пpитвоpившись ее сыном, сказал:

- Мама, я yбил Енота, и тепеpь я такой же хpабpый, как Енот.
- Ты вpешь, ты не мой сын, а я не женщина, я жена Енота котоpого ты yбил, чтобы стать хpабpым как Енот. И не мальчика ты yбил, а моего стаpшего сына Енота! - воскликнyла женщина, пpевpатилась в Енотихy, yбила мальчика и съела его сеpдце. Как только она это сделала, так сpазy же пpевpатилась в мальчика. Hа следyющий год поехала одна мама без сына на юг отдыхать. Долго ли, коpотко ли, добpалась до щели в гоpах, pасставила палаткy, живет. Вдpyг, ни с того ни с сего, пpиходит к ней мальчик и говоpит:

- Здpавствyй мама, я воспитал маленького енотика, тепеpь я такой же добpый, как Енот.
- Вpешь ты все, никакой ты не мальчик, а Енотиха котоpая yбила моего сына, за то что он yбил твоего мyжа и стаpшего сына. И никакая я не женщина, я жена Зайца, котоpого yбил Енот, чтобы стать таким же быстpым как Заяц. И никакого моего сына ты не yбивала, ты yбила своего младшего сына, котоpого я пpевpатила в мальчика, чтобы он yбил своего отца и стаpшего сына, - женщина pассмеялась, пpевpатилась в зайчихy и yбила енотихy.

Шаман закончил свой pассказ, огляделся по стоpонам и сказал: "Так добpо снова победило зло". Потом yбpал свою тpyбкy в pасшитый бисеpом чехол и шел к себе в вигвам, бypкнyв: "Каpма отличается от каpмана тypбyлентностью".

Вождь pастолковал: "Он хотел сказать, что Енотов есть нельзя - нечистые звеpи", и yшел спать.

Главный поваp сказал: "Вы слышали? Hа этой неделе нельзя есть".

Все люди подyмали: "Hичего себе их вставило", но вслyх ничего не сказали, а похлопали в ладоши и пошли спать.


Работа с реестром средствами VB

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Работа с реестром средствами VB

Автор: Хованский Ян
Источник: http://yansoft.nm.ru

Что такое реестр?

Определение, которое даёт Microsoft: «Системный реестр - база данных операционной системы, в которой хранится информация о конфигурации компьютера. Реестр хранит сведения, к которым система обращается непрерывно во время работы ...»

От себя могу добавить следующее:

Реестр имеет иерархическую структуру, и делится на шесть ветвей:

HKEY_CLASSES_ROOT. Здесь содержится информация о зарегистрированных типах файлов, а также информация для OLE и операций drag-and-drop.

HKEY_CURRENT_USER. В этом разделе хранятся настройки цветов, заставок, рабочего стола и т.д.

HKEY_LOCAL_MACHINE. Здесь содержится информация о аппаратных и программных настройках .

HKEY_CURRENT_CONFIG. В этом разделе содержится информация, относящаяся к компьютеру: драйверы, установленное программное обеспечение и его настройки

HKEY_DYN_DATA. Здесь хранятся динамические данные о состоянии различных устройств, установленных на компьютере пользователя.

Каждый, из перечисленных выше ветвей, содержит ключи (подразделы). А конечными элементами реестра являются параметры, в которых и хранится вся информация. Параметры реестра делятся на три типа:

1. строковые (напр. «Мой компьютер»)
2. двоичные (напр. 10 82 A0 8F). Максимальная длина такого ключа 16Кб
3. DWORD. Этот тип ключа занимает 4 байта и отображается в шестнадцатеричном и в десятичном виде (напр. 0x00000020 (32) - в скобках указано десятичное значение ключа).

Думаю, вы поняли, что такое реестр и для чего он нужен. Далее, вы научитесь с ним работать...

Работаем с реестром

Visual Basic умеет работать только с веткой HKEY_CURRENT_USER\ Software\VB and VBA Program Setting и только со строковыми ключами, но этого вполне достаточно, чтобы сохранять и считывать настройки своих программ:

Запись данных в реестр:
SaveSetting AppName, Section, Key, Setting '// AppName - название вашей программы,
Section - ключ, Key - имя параметра, Setting - строковое значение параметра

Чтение данных из реестра:
GetSetting AppName, Section, Key, Default '// AppName - название вашей программы,
Section - ключ, Key - имя параметра, Default - значение, которое будет возвращено функцией, если параметра не существует

Удаление данных из реестра:
DeleteSetting AppName, Section, Key '// AppName - название вашей программы,
Section - ключ, Key - имя параметра

Примичание: если вы хотите удалить подраздел целиком, то имя ключа указывать не нужно.

Получение всех имён и значений параметров заданного ключа:
GetAllSetting AppName, Section '// AppName - название вашей программы,
Section - ключ

Пример:

Dim intKeys As Integer, strKeys As Variant '// Объявляем переменные

strKeys = GetAllSettings("MyApp", "MySection") '// Используем функцию GetAllSettings

For intKeys = LBound(strKeys, 1) To UBound(strKeys, 1) '// Получаем границы массива ключей и выполняем цикл

Debug.Print strKeys(intKeys, 0), strKeys(intKeys, 1) '// Выводим результат

Next intKeys

Теперь вы знаете все функции, которые предоставляет VB для работы с реестром.

Заключение

На этом Ваше знакомство с реестром закончено. Читайте также:

Работа с реестром средствами WinAPI
Извлекаем пользу из реестра


Работа с реестром средствами WinAPI

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Работа с реестром средствами WinAPI

Автор: Хованский Ян
Источник: http://yansoft.nm.ru

WinAPI или VB?

Прочитав первую статью, вы узнали, что такое реестр и какие функции предоставляет Visual Basic для работы с ним. И вы уже знаете, что VB позволяет работать только веткой HKEY_CURRENT_USER\ Software\VB and VBA Program Setting и только со строковыми ключами. Чтобы работать с другими ветвями и типами ключей, можно воспользоваться функциями API.
Но помните, если ваша программа хранит и меняет в реестре только собственные настройки, то незачем использовать API, стандартных функций VB вам хватит вполне.

Средства WinAPI

WinAPI предоставляет очень большое количество функций для работы с реестром, поэтому будут рассмотрены только основные:

Константы, которые будут нужны:

Const REG_SZ As Long = 1
Const REG_DWORD As Long = 4

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006

Const KEY_ALL_ACCESS = &H3F

Структуры:

Type SECURITY_ATTRIBUTES

nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean

End Type

При использовании примеров из статьи, все перечисленные выше константы и структуры должны быть объявлены.

Операции с ключами:

RegOpenKeyEx - Функция открывает существующий ключ реестра, а точнее определяет его манипулятор.

Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Основные параметры:

hKey - имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey - имя открываемого ключа (например, "MyProgram\Options")
phkResult - заполняется манипулятором открытого ключа

Пример:

Dim Result As Long

RegOpenKeyEx HKEY_CLASSES_ROOT, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result

MsgBox Result

'// В этом примере выводится манипулятор ключа HKEY_CLASSES_ROOT\MyProgram\Options

RegCloseKey - Функция закрывает ключ системного реестра.

Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long

Основные параметры:

hKey - манипулятор закрываемого ключа

Пример:

Dim Result As Long

RegOpenKeyEx HKEY_CLASSES_ROOT, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result '// Открытие ключа
RegCloseKey Result '// Закрытие ключа

RegCreateKeyEx - Функция для создания нового ключа. Если ключ существует, функция открывает его.

Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

Основные параметры:

hKey - имя стандартного ключа (например, HKEY_CLASSES_ROOT)
lpSubKey - имя создаваемого подключа (например, "MyProgram\Options")

Пример:

Dim SA As SECURITY_ATTRIBUTES
Dim Result As Long
RegCreateKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, vbNullString, 0, KEY_ALL_ACCESS, SA, _ Result, &H1

RegDeleteKey - Функция удаляет указанный ключ

Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

Основные параметры:

hKey - имя стандартного ключа
lpSubKey - имя удаляемого подключа. В Win9x/Me все подключи указанного подключа также удаляются. В WinNT подключ не должен содержать других подключей.

Пример:

RegDeleteKey HKEY_CURRENT_USER, "MyProgram\Options"

Операции с параметрами:

RegSetValueEx - Функция задаёт значение и тип параметра, находящегося в заданном ключе.

Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Основные параметры:

hKey - манипулятор ключа
lpValueName - имя параметра
dwType - тип ключа
lpData - новое значение

Пример:

Dim Result As Long
Dim Retval As Long

'// Находим манипулятор нужного ключа
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result)

'// Числовому параметру DWordValue присваивается значение 22
RegSetValueEx Result, "DWordValue", 0, REG_DWORD, 22, 4

'// Строковому параметру StringValue присваивается значение "Реестр"
RegSetValueEx Result, "StringValue", 0, REG_SZ, ByVal "Реестр", Len("Реестр")

RegCloseKey Result '// Закрытие ключа

RegDeleteValue - Функция удаляет заданный параметр

Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

Основные параметры:

hKey - манипулятор ключа
lpValueName - имя удаляемого параметра

Пример:

Dim Result As Long

'// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result

'// Удаляем параметр с именем StringValue
RegDeleteValue Result, "StringValue"

RegCloseKey Result '// Закрытие ключа

RegQueryValueEx - Функция считывает значения параметра

Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Основные параметры:

hKey - манипулятор ключа
lpValueName - имя читаемого параметра
lpData - заполняется значением заданного параметра

Пример:

Dim Result As Long
Dim DWResult As Long
Dim STResult As String

STResult = Space(255)

'// Находим манипулятор нужного ключа
RegOpenKeyEx HKEY_CURRENT_USER, "MyProgram\Options", 0, KEY_ALL_ACCESS, Result

'// Считываем значения числового параметра с именем DWordValue
RegQueryValueEx Result, "DWordValue", 0, 0, DWResult, 4

'// Считываем значения строкового параметра с именем StringValue
RegQueryValueEx Result, "StringValue", 0, 0, ByVal STResult, Len(STResult)

RegCloseKey Result '// Закрытие ключа

'// Выводим значение параметров

MsgBox DWResult '// Числовое
MsgBox STResult '// Строковое

Заключение

В этой статье были рассмотрены основные средства, которые предоставляет WinAPI для работы с реестром. Теперь вы сможете использовать возможности реестра в полную силу.

Извлекаем пользу из реестра


Извлекаем пользу из реестра

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Извлекаем пользу из реестра

Автор: Хованский Ян
Источник: http://yansoft.nm.ru

Реестр - реальная польза!

Реестр Windows хранит огромное количество настроек, которые впоследствии можно изменить по своему усмотрению. В этой статье мы и поговорим об этих настройках.

Автозагрузка

Многие пользователи заблуждаются, думая, что все программы, загружаемые при запуске Windows хранятся в папке автозагрузка. Действительно, некоторые из них хранятся именно там, но большинство программ предпочитают реестр:

'// Объявления

'// Функции
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

'// Константы
Const HKEY_CURRENT_USER = &H80000001
Const KEY_ALL_ACCESS = &H3F
Const REG_SZ As Long = 1

'// Добавление программы в автозагрузку:

Public Sub AddToAutostart()
Dim Result As Long
Dim Retval As Long
Dim sPath As String

'// Определяем путь к программе
If Right(App.Path, 1) = "\" Then
sPath = App.Path & App.EXEName & ".exe"
Else
sPath = App.Path & "\" & App.EXEName & ".exe"
End If

'// Манипулятор ключа
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ALL_ACCESS, Result)

'// Записываем в автозагрузку
RegSetValueEx Result, App.Title, 0, REG_SZ, ByVal sPath, Len(sPath)

RegCloseKey Result '// Закрытие ключа

End Sub

'// Удаление из автозагрузки:

Public Sub DeleteFromAutostart()
Dim Retval As Long
Dim Result As Long
'// Манипулятор ключа
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ALL_ACCESS, Result)
'// Удаляем параметр
RegDeleteValue Result, App.Title

RegCloseKey Result '// Закрытие ключа

End Sub

Ассоциация с типами файлов

Следующий код предназначен для того, чтобы ассоциировать определённый тип файлов с Вашей программой:

'// Объявления

'// Функции
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

'// Структуры

Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type

'//
                Константы
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
Const KEY_ALL_ACCESS = &H3F

'// Функция для ассоциации типа файла с приложением
'// FileType - расширение файла

Public Sub AsProgram(FileType As String)
Dim retval As Long
Dim Result As Long
Dim SA As SECURITY_ATTRIBUTES
Dim sPath As String

'// Создаем ключ для программы
retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
'// Присваиваем значению по умолчанию название программы
RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)

'// Создаём ключ, связанный с расширением файла
retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, FileType, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
'// Присваиваем значению по умолчанию название программы
RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)

'// Последние шаг - ассоциация типа с приложением

'// Определяем командную строку для приложения
If Right(App.Path, 1) = "\" Then
sPath = App.Path & App.EXEName & ".exe %1"
Else
sPath = App.Path & "\" & App.EXEName & ".exe %1"
End If

retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title & "\shell\open\command", 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
RegSetValueEx Result, "", 0, REG_SZ, ByVal sPath, Len(sPath)

End Sub

Пример использования:

AsProgram ".txt"

Различные мелочи

Также в реестре хранятся менее полезные (для нас) настройки, с ними мы сейчас и разберёмся.
Вы уже умеете создавать ключи и присваивать значения параметрам, поэтому я представляю только список некоторых, из таких «менее полезных настроек»:

Меню Пуск:

1. Удаление пункта Избранное

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer создайте параметр NoFavoritesMenu типа DWORD со значением, равным 1

2. Удаление пункта Документы

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer создайте параметр NoRecentDocsMenu типа DWORD со значением, равным 1

3. Удаление пункта Найти

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer создайте параметр NoRecentDocsMenu типа NoFind со значением, равным 1

4. Удаление пункта Выполнить

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer создайте параметр NoRecentDocsMenu типа NoRun со значением, равным 1

5. Удаление пункта Завершение работы

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explоrer создайте параметр NoClose типа NoRun со значением, равным 1

Проводник:

1. Недоступное контекстное меню

В HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion \Policies\Explorer создайте параметр NoViewContextMenu типа DWORD со значением 1

2. Замена фона в панели инструментов

В HKEY_CURRENT_USER \SOFTWARE\ Microsoft\Internet Explorer\Toolbar создайте строковый параметр BackBitmapShell, значением которого должно быть полное имя BMP-файла.

Заключение

Прочитав эту статью вы поняли, что реестр предоставляет огромные возможности для программиста и для любого пользователя вообще. И не использовать эти возможности - грех!


Примеры

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Примеры

Примеры к статьям:

Название: Hack
Описание: Программа, которая раскрывает пароли, скрытые звёздочками.
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить

Название: Undo
Описание: Пример, показывающий, как реализовать кнопку Отмена в текстовом поле.
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить

Название: FileType
Описание: Изучив этот пример, вы сможете ассоциировать почти любой тип файлов с вашим приложением.
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить

Название: Autostart
Описание: Пример добавления программы в автозагрузку.
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить

Другие примеры:

Название: MouseMeter
Описание: Программа определяет сколько проехала ваша мышь (в сантиметрах, метрах километрах).
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить

Название: ImgViewer
Описание: Простенький просмоторщик графических файлов.
Автор: Хованский Ян (http://yansoft.nm.ru)
Загрузить


Обзор VB сайтов

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Обзор VB сайтов

Очередной обзор сайтов, посвящённых Visual Basic:

VB Kiev

Огромная кладовая информации, касающейся Visual Basic. Самый большой раздел сайта - примеры. В нём хранятся тысячи (!) всевозможных примеров, которые для удобства распределены по соответствующим группам. Но имеется небольшой недостаток - к некоторым примерам отсутствует описание. Впрочем интересны и другие разделы: статьи, API-функции и т.д.

Visual Basic - крепкий орешек!

Этот сайт предназначен прежде всего для начинающих. Здесь они смогут получить необходимые навыки, задать свои вопросы, посмотреть примеры и многое другое.
Отличный дизайн, статьи, примеры, win32api, ActiveX - такой вот «крепкий орешек».

Visual Basic - не для чайников!

На сайте имеется довольно большое количество материала. Но если внимательно его изучить, то можно сделать вывод, что вся информация (статьи, примеры, ActiveX и т.д.) была «содрана»с других VB сайтов. Хотя бы названия разделов изменили.

 HiProg.com - Технологии программирования

Здесь вы найдёте достаточно большое количество материала, который будет полезен как начинающим, так и опытным программистам на Visual Basic. Особенно хочется отметить раздел «Интернет Программирование», где вы узнаете как пользоваться элементом Winsock, создать свой броузер и многое другое.

Владельцам VB сайтов:

Если вы владелец сайта, посвящённого программированию на VB, пришлите мне адрес и описание вашего сайта и я опубликую информацию о нём в следующем номере журнала!

Автор обзора: Хованский Ян (http://yansoft.nm.ru)


Окна и манипуляторы ver. 3.0 Теория

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Окна и манипуляторы ver. 3.0 Теория

Автор: Хованский Ян
Источник: http://yansoft.nm.ru

Окна

В этой статье я расскажу вам о сообщениях окон. Что это такое, и в каких ситуациях может быть использовано. Так как мы будем говорить о сообщениях окон, вы должны знать, что такое окно. Напоминаю, окно - это объект, занимающий прямоугольный участок экрана. Он может содержать другие окна, называемые дочерними.
Запомните: всё, что находится на экране, представляет собой окно. Формы, элементы управления, кнопки, полосы прокрутки, текстовые поля - являются окнами.
Более подробно об окнах вы можете прочесть здесь

Сообщения окон

Существует два вида сообщений окон:
1. Сообщения, которые должны оповестить окно о некотором событии - например, щелчке мышью или нажатии клавиши.
2. Сообщения, которые оправляются окнам для выполнения некоторой операции. В этой статье мы поговорим именно об этом виде сообщений. Т.е. с помощью сообщений вы можете менять или получать свойства окон - например, заголовок, шрифт и т.д.

Что нам понадобится

Для отправки сообщений мы будем пользоваться Api функцией SendMessage:

Объявление:

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Описание функции:

hwnd - манипулятор окна, получающего сообщение
wMsg - идентификатор сообщения
wParam - зависит от сообщения
lParam - зависит от сообщения

С помощью идентификатора сообщения, вы определяете, какое сообщение вы посылаете окну.

Завершение

Теоретическая часть закончена, и не переживайте, если вы что-то не поняли, а переходите к практике, где мы будем работать с конкретными примерам. Читайте также:

Окна и манипуляторы ver. 3.0 Практика


Окна и манипуляторы ver. 3.0 Практика

Вступление
Статьи

WinApi
Окна и манипуляторы ver 3.0 Теория
Окна и манипуляторы ver 3.0 Практика

Реестр
Работа с реестром средствами VB
Работа с реестром средствами WinAPI
Извлекаем пользу из реестра
Примеры
Примеры к статьям
 Hack - вскрытие звёздочек
Undo - кнопка отмена в TextBox-е
FileType - ассоциация файла с приложением
Autostart - программа в Автозагрузке
Другие примеры
 MouseMeter - пробег мыши
ImgViewer - просмотр графических файлов
Для VB-Кодера
Обзор VB cайтов
Книжная полка
Ё-mail
FAQ
Юмор
Месть (сказка народов тундры)
Хроники лаборатории: дератизация
Стань автором
Как стать автором
Информация
Условия использования и распротранения
Окна и манипуляторы ver. 3.0 Практика

Автор: Хованский Ян
Источник: http://yansoft.nm.ru

Вы уже прочитали теоретическую часть, а сейчас перейдём к конкретным примерам:

Пример №1: Отмена последнего действия в тестовом поле

Для начала рассмотрим простейший пример, сделаем отмену (Undo) последнего действия в текстовом поле:

1. Создайте новый проект
2. На созданную вместе с проектом форму добавьте Кнопку (cmdUndo) и Текстовое Поле (txtUndo)
3. После перечисленных выше действий форма должна выглядеть примерно так:

4. Добавьте в модуль формы следующий код:

'Функция посылает окну сообщение
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
'Идентификатор сообщения, отменяющего последнюю операцию редактирования
Private Const EM_UNDO = &HC7

Private Sub cmdUndo_Click()
'Посылаем сообщение текстовому полю, чтобы отменить последнее действие
SendMessage txtUndo.hwnd, EM_UNDO, 0, 0
End Sub

Теперь нажимая кнопку, вы можете отменить последнюю операцию редактирования текстового поля.
Пример можно скачать здесь

Пример №2: Что скрывается под звёздочками?

Этот пример будет посложнее. Мы создадим программу, которая будет раскрывать звёздочки в паролях:

1. Создайте новый проект
2. На созданную вместе с проектом форму добавьте 5 меток (lblHelp, lblCursor, lblXY, lblWindow, lblHwnd), 1 таймер (tmrCrack), 1 кнопку (cmdExit), а также можете добавить одну картинку, для красоты:)
3. Элементы управления должны иметь следующие свойства:

Имя: Свойство: Значение:
lblHelp | Caption | Наведите курсор мыши на скрытую надпись, щёлкните по ней и надпись раскроется!!!
lblCursor | Caption | Текущие координаты мыши:
lblXY | BorderStyle | 1
lblWindow | Caption | Манипулятор окна:
lblHwnd | BorderStyle | 1
tmrCrack | Interval | 1
cmdExit | Caption | &Закрыть

4. После перечисленных выше действий форма должна выглядеть примерно так:

5. Добавьте в модуль формы следующий код:

'Функция определяет манипулятор окна по его координатам
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

'Посылает окну сообщение
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'Определяет текущую позицию курсора
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Структура POINTAPI
Private Type POINTAPI
x As Long
y As Long
End Type

'Идентификатор сообщения, задаёт символ, используемый для ввода пароля
Private Const EM_SETPASSWORDCHAR = &HCC

Private Sub cmdExit_Click()
Unload Me
End Sub

Private Sub Timer1_Timer()

Dim hwnd As Long
Dim Curs As POINTAPI
'Определяем координаты курсора
GetCursorPos Curs
'Определяем манипулятор окна
hwnd = WindowFromPoint(Curs.x, Curs.y)
'Отображаем полученные значения
lblHwnd.Caption = hwnd
lblXY.Caption = " X: " & Curs.x & " Y: " & Curs.y

'Посылаем окну сообщение, чтобы звёздочек не было
SendMessage hwnd, EM_SETPASSWORDCHAR, 0, 0

End Sub

Теперь с помощью этой программы вы можете раскрывать звёздочки в паролях, для этого вам нужно навести курсор на скрытый пароль и кликнуть по нему:

Пример можно скачать здесь

На этом наше знакомство с сообщениями окон подходит к концу. Если остались вопросы, пишите